package com.leruan.aasimp.service;

import java.util.List;
import java.util.Map;

import com.leruan.aasimp.entity.Forumstst;
import com.leruan.aasimp.entity.Mainpost;
import com.leruan.aasimp.entitydto.MainPostDto;

public interface MainPostService {
    /**
     * 通过板块id查找该板块的所有帖子
     */
    List<Mainpost> getMainPostsByBoardId(String boardId);

    /**
     * 通过帖子id查找帖子
     */
    Mainpost getMainPostsByPostId(String postId);

    /**
     * 获得最新发表的帖子列表（取前五）
     */
    List<Mainpost> getMainPostsNewest();

    /**
     * 获得最受欢迎的帖子
     * 
     * @return
     */
    List<Mainpost> getMainPostsPopular();

    /**
     * 获得最新精华帖子
     * 
     * @return
     */
    List<Mainpost> getMainPostsNewEssence();

    /**
     * 修改主题信息
     * 
     * @param mainpost
     */
    void modifyMainPost(Mainpost mainpost);

    /**
     * 添加帖子
     * 
     * @param mainpost
     */
    void addMainPost(Mainpost mainpost);

    /**
     * 删除帖子
     * 
     * @param mainpost
     */
    void removeMainPost(Mainpost mainpost);

    /**
     * 修改论坛统计表
     * 
     * @param forumstst
     */
    void modifyForumstst(Forumstst forumstst);

    /**
     * 通过用户id查找论坛统计信息
     * 
     * @param postId
     */
    Forumstst getForumststByUserId(String postId);

    /**
     * 插入论坛统计信息
     * 
     * @param forumstst
     */
    void addForumstst(Forumstst forumstst);

    /**
     * 删除论坛统计信息
     * 
     * @param forumstst
     */
    void removeForumstst(Forumstst forumstst);

    /**
     * 获得所有论坛统计信息
     * 
     * @return
     */
    List<Forumstst> getForumststs();

    /**
     * 带分页的论坛板块帖子列表
     * 
     * @param boardId
     * @param map
     * @param pageNo
     * @return
     */
    List<MainPostDto> getMainPostsByBoardId(String boardId, Map<String, String> map, int pageNo);

    /**
     * 获得论坛板块帖子总数
     * 
     * @param boardId
     * @param map
     * @return
     */
    Long getMainPostTotal(String boardId, Map<String, String> map);

    /**
     * 获得userid对应的主题贴
     * 
     * @param userId
     * @return
     */
    List<Mainpost> getMainPostsByUserId(String userId);

    /**
     * 获得发布的帖子数
     * 
     * @param userId
     * @return
     */
    Long getMainPostNumById(String userId);

    List<MainPostDto> getMainPostsByUserId(String userId, int pageNo);

}
